home *** CD-ROM | disk | FTP | other *** search
/ PD ROM 1 / PD ROM Volume I - Macintosh Software from BMUG (1988).iso / Stacks / Updates⁄New / MemoNoteStack 4.0 / stack.txt < prev   
Encoding:
Text File  |  1988-03-06  |  22.8 KB  |  652 lines

  1. -- stack: in.0
  2. -- format: 8 (HyperCard 1)
  3. -- flags: 0x4000 (can't delete)
  4. -- protect password hash: 2829596257
  5. -- maximum user level: 4 (authoring)
  6. -- window: Rect(x1=0, y1=0, x2=0, y2=0)
  7. -- screen: Rect(x1=0, y1=0, x2=0, y2=0)
  8. -- card dimensions: w=0 h=0
  9. -- scroll: x=0 y=0
  10. -- background count: 1
  11. -- first background id: 2781
  12. -- card count: 5
  13. -- first card id: 2885
  14. -- list block id: 3829
  15. -- print block id: 3527
  16. -- font table block id: 0
  17. -- style table block id: 0
  18. -- free block count: 0
  19. -- free size: 0 bytes
  20. -- total size: 75744 bytes
  21. -- stack block size: 31232 bytes
  22. -- created by hypercard version: 0x00000000
  23. -- compacted by hypercard version: 0x00000000
  24. -- modified by hypercard version: 0x00000000
  25. -- opened by hypercard version: 0x00000000
  26. -- patterns[0]: 0x0000000000000000
  27. -- patterns[1]: 0x0000220000002200
  28. -- patterns[2]: 0x8800220088002200
  29. -- patterns[3]: 0xCC003300CC003300
  30. -- patterns[4]: 0xCC883322CC883322
  31. -- patterns[5]: 0xEE88BB22EE88BB22
  32. -- patterns[6]: 0xEECCBB33EECCBB33
  33. -- patterns[7]: 0xFFCCFF33FFCCFF33
  34. -- patterns[8]: 0xFFEEFFBBFFEEFFBB
  35. -- patterns[9]: 0xFFFFFFBBFFFFFFBB
  36. -- patterns[10]: 0x8010022001084004
  37. -- patterns[11]: 0xFFFFFFFFFFFFFFFF
  38. -- patterns[12]: 0x8822882288228822
  39. -- patterns[13]: 0x1122448811224488
  40. -- patterns[14]: 0xC4800C6843023026
  41. -- patterns[15]: 0xB130031BD8C00C8D
  42. -- patterns[16]: 0xAA00AA00AA00AA00
  43. -- patterns[17]: 0x8822552288225522
  44. -- patterns[18]: 0x8855225588552255
  45. -- patterns[19]: 0x77DD77DD77DD77DD
  46. -- patterns[20]: 0x8000000000000000
  47. -- patterns[21]: 0xAA55AA55AA55AA55
  48. -- patterns[22]: 0x038448300C020101
  49. -- patterns[23]: 0x8244394482010101
  50. -- patterns[24]: 0x8814224188412214
  51. -- patterns[25]: 0x8080413E080814E3
  52. -- patterns[26]: 0x22048C7422179810
  53. -- patterns[27]: 0xBE808808EB088880
  54. -- patterns[28]: 0x25C8328964244C92
  55. -- patterns[29]: 0xA29C41BE2AC914EB
  56. -- patterns[30]: 0x40A00000040A0000
  57. -- patterns[31]: 0x8040200002040800
  58. -- patterns[32]: 0xAA00800088008000
  59. -- patterns[33]: 0xFF80808080808080
  60. -- patterns[34]: 0x081C22C180010204
  61. -- patterns[35]: 0xFF808080FF080808
  62. -- patterns[36]: 0xF87422478F172271
  63. -- patterns[37]: 0xBF00BFBFB0B0B0B0
  64. -- patterns[38]: 0xFF7FBE5DA2418000
  65. -- patterns[39]: 0xFAF5FAF5A050A050
  66. -- checksum: 0x0
  67. ----- HyperTalk script -----
  68. >MemoNote --4.1.1 ***Required Delimiter for MemoNotes Installer
  69. --MemoNotes‚Ñ¢ by Peter Fraterdeus
  70. --Ver.4.1.1 -- 5 Mar 88 PSF
  71. --InitGlobals Implemented
  72. --Command-Click on Field brings Note to front of card (ver 4.1.1 Notes)
  73. --Version 4.1 -- 28 Feb 88 PSF
  74. --MemoNotes‚Ñ¢ Settings Page implemented
  75. --Converts ver 3.x notes to ver 4.x
  76. --Version 4.0 -- rev. 23 feb 1988 PSF
  77. --Option-Click when selecting Location of new note
  78. --makes note into DoMeNote‚Ñ¢ with interactive HyperTalk.
  79. --Re‚Äìordered button & field creation so field is created behind buttons
  80. --Version 3.1  --- rev. 5 feb 1988 PSF
  81. --Command-Click on Field brings Note to front of card (not yet!)
  82. --Version 3.0  --- rev. 5 feb 1988 PSF
  83. --Added GrowButton.
  84. --Completely consolidated button scripts into stack script.
  85. --buttons are much smaller, and more concise in their message handling
  86. --Version 2.2a --- rev. 1 feb 1988 PSF
  87. --Now checks that NoteButton is in dragRect before resetting location
  88. --SetRect(t,l,b,r) implemented
  89. --Version 2.2 --- rev. 26 jan 1988 PSF
  90. --Installer/De-Installer Button implemented (uses delimiter)
  91. --Version 2.1 --- rev. 25 jan 1988 PSF
  92. --Consolidated all functions into MemoNote button
  93. --and made Notes self-removing (removed "Remove Notes" button)
  94. --MemoNote changes to ShowNotes on option-click.
  95. --MemoNoteButton pastes self to background, if it ain't‚Ķ
  96. --ShowNote is pared to the essence‚Ķ
  97. --Version 2.0 --- rev. 23 jan 1988 PSF
  98. --Note buttons move in browse mode by click-dragging
  99. --**********************
  100. ***
  101. on setVersionID
  102.   global gVersionID
  103.   put "4.1.1" into gVersionID
  104.   initGlobals
  105. end setversionID
  106.  
  107. on initGlobals
  108.   global gMoveNote, screenRect, clipRect, dragRect
  109.   global gNoteStyle, gNoteShowLines, gNoteTFont
  110.   global gNoteTSize, gGlobalInitFlag, gDoMeNoteRequireCmd
  111.   if gGlobalInitFlag is empty or gGlobalInitFlag is false then
  112.     set lockscreen to true
  113.     push card
  114.     go to card MemoNoteSettings of stack "memoNoteStack*4.0"
  115.     pop card
  116.     put "0,0,511,341" into screenRect
  117.     put true into gGlobalInitFlag
  118.   end if
  119. end initGlobals
  120.  
  121. on NoteButtonMouseUp
  122.   global gVersionID
  123.   setVersionID
  124.   put the userlevel into templevel
  125.   set the userlevel to 5
  126.   put the id of the target into myID
  127.   if  line 1 of the script of the target contains "4." then
  128.     if the optionkey is down then
  129.       --‚Ä¢Sends a killField Message to the Note Button selected, removing
  130.       -- both field and button.
  131.       --‚Ä¢The Note Button sends a KillNotes message up the chain when
  132.       -- clicked with the option Key down and the action is confirmed.
  133.  
  134.       answer "Remove this Note?" with "Remove" or "Cancel"
  135.       if it = "Remove" then
  136.         set lockscreen to true
  137.         get the id of the target -- will only be a Note button
  138.         --‚Ä¢send killField to card button id it
  139.         -- the button clears its field
  140.         set the visible of card field id (myID-1)  to true
  141.         choose field Tool
  142.         click at the loc of card field id (myID-1)
  143.         domenu clear field
  144.         set the visible of card button id (myID+1)  to true
  145.         choose button Tool
  146.         click at the loc of card button id (myID+1)
  147.         domenu clear button
  148.         --***
  149.         choose button tool
  150.         click at Loc of card button id it
  151.         domenu clear button
  152.         set cursor to 1
  153.         choose browse tool
  154.         set the userlevel to templevel
  155.         exit to hypercard
  156.       end if
  157.       set the userlevel to templevel
  158.       exit NoteButtonMouseUp
  159.     end if
  160.     put the visible of card field id (myID-1) into showing
  161.     showfield showing
  162.   else -- convert old button
  163.     set lockscreen to true
  164.     set cursor to 4
  165.     answer "Converting Old Button‚Ķ"
  166.     put card field id (myID+2) into tempText
  167.     choose field tool
  168.     click at the loc of card field id (myID+2)
  169.     domenu "cut field"
  170.     domenu "paste field"
  171.     choose button tool
  172.     click at the loc of card button ID myID
  173.     domenu "cut button"
  174.     domenu "paste button"
  175.     put the id of card button (the number of buttons) into newId
  176.     get the script of card button id newId
  177.     put gVersionID after line 1 of it
  178.     set the script of card button id newId to it
  179.     click at the loc of card button ID (myID+1)
  180.     domenu "cut button"
  181.     domenu "paste button"
  182.     choose browse tool
  183.     put tempText into card field (the number of card fields)
  184.   end if
  185.   set the userlevel to templevel
  186. end NoteButtonMouseUp
  187. ***
  188. **********************
  189. on MemoNote -- 6 Jan 88 ‚Äî MemoNotes‚Ñ¢ by Peter Fraterdeus
  190.   set lockscreen to true
  191.   put the userlevel into templevel
  192.   set userlevel to 5
  193.   MagicCopy
  194.   global gVersionID
  195.   setVersionID
  196.   global gMoveNote, screenRect, clipRect, dragRect
  197.   global gNoteStyle, gNoteShowLines, gNoteTFont, gNoteTSize,gNoteTHeight, gRegisteredFlag
  198.   Show msg
  199.   put Msg into tempMsg
  200.   put "Click where you want the new Note... (or command-. to cancel)"
  201.   beep
  202.   set cursor to 2
  203.   set lockscreen to true
  204.   wait until the mouse is down -- click at note start
  205.   put False into DoMeFlag
  206.   if the optionKey is down then put True into DoMeFlag
  207.   get the mouseLoc
  208.   put item 1 of it into HMouse
  209.   put item 2 of it into VMouse
  210.   set cursor to 4
  211.   wait until the mouse is up -- drag to note size
  212.   get the mouseLoc
  213.   if abs(Hmouse-item 1 of it)>100 then
  214.     put abs(Hmouse-item 1 of it) into fieldWidth
  215.   else
  216.     put 162 into fieldWidth  -- change these for different note size.
  217.   end if
  218.   if abs(Vmouse-item 2 of it)>62 then
  219.     put abs(Vmouse-item 2 of it) into fieldHeight
  220.   else
  221.     put 100 into fieldHeight  -- change these for different note size.
  222.   end if
  223.  
  224.   --‚Ä¢‚Ä¢‚Ä¢ Create the note ‚Ä¢‚Ä¢‚Ä¢
  225.   put the number of buttons into ButtonNum
  226.   put the number of card fields into FieldNum
  227.   put tempMsg
  228.   --‚Ä¢ Make Note Field
  229.   choose field tool
  230.   drag from HMouse,VMouse+16 to HMouse+fieldWidth, VMouse+fieldHeight with commandKey -- Draw the new Field
  231.  
  232.   choose button tool -- this actually enables the new field
  233.   get the id of card field (the number of card fields)
  234.   set name of card field id it to "Note"&&it
  235.   put short name of card field id it into FieldName
  236.   put "card field id " before it
  237.  
  238.   show it
  239.   put"*NoteFieldScript*"&gVersionID&return into NoteFieldScript
  240.   put"on MouseDown"&return after NoteFieldScript
  241.   put"send NoteFieldMouseDown"&return after NoteFieldScript
  242.   put"end MouseDown"&return after NoteFieldScript
  243.   set the script of it to NoteFieldScript
  244.   set style of it to gNoteStyle
  245.   set locktext of it to false
  246.   set showlines of it to gNoteShowLines
  247.   set textFont of it to gNoteTFont
  248.   set textSize of it to gNoteTSize
  249.   set textHeight of it to gNoteTHeight
  250.   put it into fieldID
  251.   put"Note created"&&the short time&& the short Date&return into NoteText
  252.   if gRegisteredflag = false or gRegisteredflag = empty then
  253.     put"MemoNotes‚Ñ¢ Hypernote System"&return after NoteText
  254.     put"¬©1988 PeterFraterdeus"&return after NoteText
  255.     put"CIS 73306,2703"&return after NoteText
  256.     put"ShareWare-$20. to: "&return after NoteText
  257.     put"Alphabets, Inc."&return after NoteText
  258.     put"Box 5448"&return after NoteText
  259.     put"Evanston, Illinois"&return after NoteText
  260.     put"60204-5448"&return after NoteText
  261.   end if
  262.   put NoteText into card field FieldName
  263.  
  264.   --‚Ä¢Make Note Field
  265.  
  266.   --‚Ä¢ Make Buttons
  267.   put 0 into DoMeExtn
  268.   if DoMeFlag then put 20 into DoMeExtn -- make the button longer
  269.   drag from HMouse,VMouse to¬¨  -- Draw the new NoteButton
  270.   HMouse+70 + DoMeExtn,VMouse+16 with commandKey
  271.  
  272.   drag from  HMouse+fieldWidth,¬¨  -- the new GrowButton
  273.   VMouse+fieldHeight to HMouse+fieldWidth -16,¬¨  -- NoteField ID+2
  274.   VMouse+fieldHeight+16 with commandKey
  275.  
  276.   choose browse tool -- this actually enables the new button so that
  277.   -- its properties may be set...
  278.   put "card button (ButtonNum +1)" into it
  279.   set name of it to "Note" -- The name must contain the word Note
  280.   show it                  -- to be recognized, but may also include
  281.   set style of it to Rectangle -- other words (as "Phone Note", etc.)
  282.   set autohilite of it to false
  283.   set hilite of it to true
  284.   set showname of it to true
  285.   if DoMeFlag is True then set name of it to "Do Me Note"
  286.   put "card button (ButtonNum +2)" into it -- the Grow button
  287.   set name of it to "Grow" --
  288.   show it                  --
  289.   set style of it to Rectangle --
  290.   set autohilite of it to false
  291.   set hilite of it to true
  292.   set the icon of it to 1018 -- marker cross
  293.  
  294.   --‚Ä¢ Make Buttons
  295.  
  296.   -- *** Building the ButtonScript ***
  297.   if DoMeFlag contains "true" then
  298.     put"*DoMeNoteButtonScript*"&gVersionID&return into NoteButtonScript
  299.     put"on MouseDown"&return after NoteButtonScript
  300.     put"  global gSelection"&return after NoteButtonScript
  301.     put"  put selection into gSelection"&return after NoteButtonScript
  302.     put"  pass mousedown"&return after NoteButtonScript
  303.     put"end MouseDown"&return after NoteButtonScript
  304.     put""&return after NoteButtonScript
  305.     put"on MouseUp"&return after NoteButtonScript
  306.     put"  send DoMeMouseUp"&return after NoteButtonScript
  307.     put"end MouseUp"&return after NoteButtonScript
  308.     put""&return after NoteButtonScript
  309.     put"****"&return after NoteButtonScript
  310.     put"Do Me Notes‚Ñ¢ ¬©1988"&return after NoteButtonScript
  311.     put"Interactive Fields from MemoNotes"&return after NoteButtonScript
  312.   else -- default NoteButton
  313.     put"*NoteButtonScript*"&gVersionID&return into NoteButtonScript
  314.     put"on mouseup"&return after NoteButtonScript
  315.     put"  send NoteButtonMouseUp"&return after NoteButtonScript
  316.     put"end MouseUp"&return after NoteButtonScript
  317.     put""&return after NoteButtonScript
  318.   end if -- end DoMeFlag
  319.   put"****This note created"&&the date & return after NoteButtonScript
  320.   put"MemoNotes‚Ñ¢ Hypernote system"&return after NoteButtonScript
  321.   put"¬©1988 PeterFraterdeus"&return after NoteButtonScript
  322.   put"CIS 73306,2703"&return after NoteButtonScript
  323.   put"ShareWare-$20. to: Alphabets, Inc."&return after NoteButtonScript
  324.   put"Box 5448/ Evanston, IL. 60204-5448"&return after NoteButtonScript
  325.   choose button tool
  326.   set script of card button (buttonNum +1) to NoteButtonScript--1st Btn.
  327.  
  328.   put"NoteGrowButton"&gVersionID&return into NoteButtonScript
  329.   put"**"&return after NoteButtonScript
  330.   put"on mousedown"&return after NoteButtonScript
  331.   put"  send NoteGrowMouseDown"&return after NoteButtonScript
  332.   put"end mousedown"&return after NoteButtonScript
  333.   put"***"&return after NoteButtonScript
  334.   put"on mouseup"&return after NoteButtonScript
  335.   put"  send NoteGrowMouseUp"&return after NoteButtonScript
  336.   put"end mouseUp"&return after NoteButtonScript
  337.   put"****"&return after NoteButtonScript
  338.   put"on showGrow"&return after NoteButtonScript
  339.   put"  send showGrowButton"&return after NoteButtonScript
  340.   put"end showGrow"&return after NoteButtonScript
  341.   put""&return after NoteButtonScript
  342.   put"MemoNotes‚Ñ¢ Hypernote system"&return after NoteButtonScript
  343.   put"¬©1988 PeterFraterdeus"&return after NoteButtonScript
  344.   put"CIS 73306,2703"&return after NoteButtonScript
  345.   put"ShareWare-$20. to: Alphabets, Inc."&return after NoteButtonScript
  346.   put"Box 5448/ Evanston, IL. 60204-5448"&return after NoteButtonScript
  347.   choose browse tool
  348.   set script of card button (buttonNum +2) to NoteButtonScript-- 2nd Btn
  349.   set cursor to 1
  350.  
  351.   choose browse tool
  352.   set cursor to 1
  353.   set the userlevel to templevel
  354.   set lockscreen to false
  355.  
  356.   click at the loc of card field FieldName
  357.   click at the loc of card field FieldName
  358.   type tab
  359.   type tab with shiftKey
  360. end MemoNote
  361. ***********************
  362. on DoMeMouseUp -- Command-Click to do Field
  363.   global gmoveNote
  364.   global gDoMeNoteRequireCmd -- Default is True
  365.   if gmoveNote is true or the optionKey is down or (the commandkey is up and gDoMeNoteRequireCmd is true) then
  366.     NoteButtonMouseUp
  367.     exit DoMeMouseUp
  368.   end if
  369.   DoField
  370. end DoMeMouseUp
  371.  
  372. on DoField
  373.   global gSelection
  374.   get gSelection
  375.   put the id of the target - 1  into ID -- ver 4.0 refs
  376.   if gSelection is empty then
  377.     get card field id ID
  378.   end if
  379.   put "on Perform " & return before it
  380.   put  return&" end Perform " & return after it
  381.   put "on closefield " & return after it
  382.   put "send DoMeCloseField " & return after it
  383.   put "end closefield" & return after it
  384.   put "on MouseDown"&return after it
  385.   put "send NoteFieldMouseDown"&return after it
  386.   put "end MouseDown"&return after it
  387.   set the script of card field id ID to it
  388.   send Perform to card field id ID
  389. end DoField
  390.  
  391. on DoMeCloseField -- should be an XCMD... Prettifies DoMe Fields
  392.   -- Doesn't work yet with ‚Äúif--then--action‚Äù all on one line...
  393.   put "    " into cTab
  394.   put the length of cTab into LnthcTab
  395.   put "" into ntab
  396.   put the id of the target into it
  397.   put card field id it into tempText
  398.   if the number of lines in tempText >50 then exit DoMeClosefield
  399.   -- takes too long....
  400.  
  401.   repeat with i=1 to the number of lines in tempText
  402.     repeat while char 1 of line i of tempText =" "
  403.       delete char 1 of line i of tempText
  404.     end repeat
  405.   end repeat
  406.  
  407.   repeat with i =1 to the number of lines in tempText
  408.     if word 1 of line i of tempText is in "on,if,repeat,else" then
  409.       put cTab before nTab
  410.     end if
  411.  
  412.     if word 1 of line i +1 of tempText is in "end,else" then
  413.       delete char 1 to LnthcTab of nTab
  414.     end if
  415.     put ntab before word 1 of line i +1 of tempText
  416.   end repeat
  417.   put temptext into card field id it
  418. end DoMeCloseField
  419.  
  420. on noteFieldMouseDown -- cmdKey-click to bring field to Front
  421.   -- This works in Version 4.1.1 or later
  422.   set lockscreen to true
  423.   put the id of the target into MyId
  424.   put card field id (myID) into tempText
  425.   choose field tool
  426.   click at the loc of card field id (myID)
  427.   domenu "cut field"
  428.   domenu "paste field"
  429.   choose button tool
  430.   click at the loc of card button ID (myID+1)
  431.   domenu "cut button"
  432.   domenu "paste button"
  433.   click at the loc of card button ID (myID+2)
  434.   domenu "cut button"
  435.   domenu "paste button"
  436.   choose browse tool
  437.   put tempText into card field (the number of card fields)
  438. end noteFieldMouseDown
  439.  
  440. on showGrowButton
  441.   put the rect of the target into myRect
  442.   get the rect of card field id (the id of the target -2)
  443.   put item 3 of it -17 into item 1 of myRect
  444.   put item 4 of it into item 2 of myRect
  445.   put item 3 of it into item 3 of myRect
  446.   put item 4 of it +17 into item 4 of myRect
  447.   set the rect of the target to myRect
  448.   set the visible of the target to true
  449. end showGrowButton
  450. ***
  451. on showField showing
  452.   global gMoveNote,dH,dV
  453.   put the id of the target into myID
  454.   if the paramcount=0 then put true into showing--1 Feb chngd. to "true"
  455.   if (showing=false and gMoveNote = false) or (showing=true and gMoveNote = true) then
  456.     -- if the field isn't showing and the button hasn't been moved
  457.     -- then show the field in its present location
  458.     -- or if the field is showing but the button has been moved
  459.     -- then reshow the field in its new location
  460.     doHilite true
  461.     get the rect of the target
  462.     put it into bRect
  463.     --if card button id (myID +1) ‚↠empty then get the rect of  card button id (myID +1)
  464.     put gethv ("card field id "&&(myID -1)) into temp
  465.     set the rect of card field id (myID -1) to item 1 of bRect,item 4 of bRect, item 1 of bRect+dH,item 4 of bRect+dV
  466.  
  467.     show card field id (myID -1)
  468.     send showGrow to card button id (myID +1)
  469.   else
  470.     doHilite false
  471.     hide card field id (myID -1)
  472.     hide button id (myID +1)
  473.   end if
  474. end showField
  475.  
  476. ***
  477. on NoteGrowMouseUp --
  478.   global gMoveNote
  479.   put true into gMoveNote
  480.   put the rect of the target into myRect
  481.   put the id of the target into myID
  482.   get the rect of card field id (myID -2)--
  483.   put item 3 of myRect into item 3 of it
  484.   put item 2 of myRect into item 4 of it
  485.   set the rect of  card field id (myID -2) to it
  486.   put the visible of card field id (myID -2)  into showing
  487.   send showfield to card button id (myID -1)
  488.  
  489. end NoteGrowMouseUp
  490. ***
  491. on NoteGrowMouseDown
  492.   global DragRect, ClipRect,screenRect
  493.   put the rect of card field id (the id of the target -2) into clipRect
  494.   put item 1 to 2 of clipRect into dragRect
  495.   put ","&item 3 to 4 of screenRect after dragRect
  496.   repeat while the mouse is down and pointinRect (the mouseLoc, the rect of the target)
  497.   end repeat
  498.   repeat until the mouse is up -- doDragButton
  499.     get the mouseLoc
  500.     if pointinRect (it, dragRect) then set the loc of target to it
  501.   end repeat
  502.  
  503. end NoteGrowMouseDown
  504. ***
  505.  
  506. ***********************
  507.  
  508. on ShowNotes -- 7 Jan '88 by Peter Fraterdeus (ver 2.11 -- 25jan88)
  509.   -- Part of the MemoNotes‚Ñ¢ system
  510.   --‚Ä¢Sends a showField message to any button named "Note" on a card
  511.   -- thus toggling the visiblity of the Note Fields on the card
  512.   set lockscreen to true
  513.   global HideAll
  514.   if hideall is empty then put false into hideall
  515.   put "showField"&& (not Hideall) into doWhat
  516.   put (not Hideall) into hideAll
  517.  
  518.   repeat with btn=1 to the number of card buttons
  519.     get the name of card button btn
  520.     if line 1 of the script of it contains "NoteButtonScript*" then
  521.       send doWhat to card button btn -- if this causes a problem
  522.       -- make sure the MemoNoteButton is in the Background!
  523.       -- Also, any buttons from earlier versions of MemoNotes
  524.       -- or buttons with the word NOTE in them (ie. "Go MemoNoteStack",
  525.       -- or other people's stacks), that don't know about showField
  526.       -- will not like the ShowNote message.
  527.       -- If necessary, add the following to the offending button script.
  528.       -- on showfield  -- (Remove the dashes, of course‚Ķ)
  529.       -- end showfield  -- (‚Ķand these parenthetical notes)
  530.     end if
  531.   end repeat
  532. end ShowNotes
  533. ***********************
  534. on mousedown -- 6 Jan 88 - ToggleFieldStyle by Peter Fraterdeus
  535.   set lockScreen to true
  536.   put the userlevel into templevel
  537.   set userlevel to 5
  538.   magicCopy
  539.  
  540.   get the name of the target
  541.   if it contains "Field"  then
  542.     if the shiftKey is down and the commandKey is down then
  543.       get style of the target
  544.       if it <>"Scrolling" then
  545.         set style of the target to scrolling
  546.       else
  547.         set style of the target to rectangle -- change for a different
  548.       end if                                 -- default rect.
  549.     end if
  550.   else
  551.     if it contains "card button" and it contains "Note" then
  552.       set lockScreen to false
  553.       MoveNote
  554.       set the userlevel to templevel
  555.       exit to hypercard
  556.     end if
  557.   end if
  558.   set the userlevel to templevel
  559. end mousedown
  560. **********************
  561. on MoveNote
  562.   global gMoveNote, screenRect, clipRect, dragRect
  563.   put false into gMoveNote
  564.   put "6,7,506,333" into dragRect
  565.   put the loc of the target into temp
  566.   repeat while the mouse is down and pointinRect (the mouseLoc, the rect of the target)
  567.   end repeat
  568.   repeat until the mouse is up -- doDragButton
  569.     get the mouseLoc
  570.     if pointinRect (it, dragRect) then set the loc of target to it
  571.   end repeat
  572.   if the loc of the target ‚↠temp  then put true into gMoveNote
  573.   -- one of the great qualities of
  574.   -- object based environments....
  575.   send mouseup to target       -- I borrowed the concept, but the
  576.   choose browse tool       -- execution is completely my design...
  577. end moveNote
  578.  
  579. **********************
  580. on doHilite OnOff -- onOff must be either True or False if it exists
  581.   if the paramcount = 0 then
  582.     set the hilite of the Target to not the hilite of the Target
  583.   else
  584.     set the hilite of the Target to onOff
  585.   end if
  586. end doHilite
  587. **********************
  588. on MagicCopy -- Magic Button Copy by Peter Fraterdeus
  589.   if the shiftKey is down and the optionKey is down and word 2 of the name of the target is "Button"then
  590.   choose button tool
  591.   click at the loc of the target -- Shift-Opt.Click to copy button*
  592.   domenu copy button
  593.   put the short name of the target&&"Button copied..." into msg
  594.   choose browse tool
  595.   exit to hyperCard
  596. end if
  597. end MagicCopy
  598. ***********************
  599. on enterkey -- Toggle Browse-Button-Field Tools with EnterKey+Shift
  600.   -- I got this out of Macazine, I believe, from Jerry Daniels and added
  601.   -- the ShiftKey modifier
  602.   if the userlevel <4 then exit enterkey
  603.   if the shiftKey is down then
  604.     if the tool is "browse tool" then choose button tool
  605.     else if the tool is "button tool" then choose field tool
  606.     else choose browse tool
  607.   end if
  608. end enterkey
  609. ***********************
  610. These are just some little helpers for finding the name and sizes
  611. of objects
  612. ***********************
  613. on showRect targ
  614.   put the rect of targ into msg
  615. end showRect
  616. on getSName targ
  617.   put the short name of targ into msg
  618. end getSName
  619. on getName targ
  620.   put the name of targ into msg
  621. end getName
  622.  
  623. function getRect targ
  624. return the rect of targ
  625. end getRect
  626.  
  627. on showHV targ
  628.   global dH,dV
  629.   put getRect(targ) into msg
  630.   put getHV(targ) into temp
  631.   put "-"&&dH && dV after msg
  632. end showHV
  633.  
  634. function getHV targ
  635. global dH,dV
  636. get the rect of targ
  637. put item 3 of it - item 1 of it into dH
  638. put item 4 of it - item 2 of it into dV
  639. return true
  640. end getHV
  641.  
  642. function PointinRect apoint,aRect
  643. if item 1 of apoint >= item 1 of aRect and item 1 of apoint <= item 3 of aRect and item 2 of apoint >= item 2 of aRect and item 2 of apoint <= item 4 of aRect
  644. then return true
  645. else
  646.   return false
  647. end if
  648. end PointinRect
  649. ***********************
  650. >MemoNote --4.1.1 ***Required Delimiter for MemoNotes Installer***********************
  651.  
  652.